[PR]

水無瀬の部屋 > Programming > sample > tools > header > tooldbg.h
最終更新日: 2007/03/30

   1: //*********************************************************
   2: // プロジェクト: TOOLS
   3: //  ファイル名: tooldbg.h
   4: //*********************************************************
   5: #ifndef TOOL_DEBUG_HEAD_INCLUDED // 多重インクルードの防止
   6: #define TOOL_DEBUG_HEAD_INCLUDED
   7: 
   8: 
   9: //*********************************************************
  10: // コンパイル環境の指定
  11: //*********************************************************
  12: #ifndef PRIVATE_TOOLS_HEAD_INCLUDED // 冗長ガード
  13: #include <header/_tools.h>
  14: #ifndef PRIVATE_TOOLS_HEAD_INCLUDED // ガード名の検査
  15: #error "? PRIVATE_TOOLS_HEAD_INCLUDED"
  16: #endif // #ifndef PRIVATE_TOOLS_HEAD_INCLUDED
  17: #endif // #ifndef PRIVATE_TOOLS_HEAD_INCLUDED
  18: 
  19: 
  20: //*********************************************************
  21: // デバッグ専用ヘッダ の インクルード
  22: //*********************************************************
  23: #define IN_DEBUG_HEAD // デバッグ専用ヘッダ の インクルード
  24: #ifdef _DEBUG // デバッグ時のみ
  25: #include <header/dbgalloc.h> // デバッグ時のみ
  26: #include <header/dbgasert.h> // デバッグ時のみ
  27: #endif // #ifdef _DEBUG
  28: #include <header/dbgtrace.h> // 
  29: #undef  IN_DEBUG_HEAD
  30: 
  31: 
  32: //*********************************************************
  33: // マクロ の 定義
  34: //*********************************************************
  35: // nop() の定義
  36: #define nop()
  37: 
  38: 
  39: // ErrExit(msg) の定義
  40: //#define ErrExit(msg) exit( EXIT_FAILURE )
  41: 
  42: 
  43: // DESTROY_BUFFER( buf, bufsize ) の定義
  44: //
  45: // バッファを破壊する
  46: // buf と bufsize が確認できる
  47: //
  48: #ifdef _DEBUG // デバッグ版
  49: #define DESTROY_BUFFER( buf, bufsize ) (memset( (buf), 0xCA, (bufsize) ))
  50: #else         // リリ−ス版
  51: #define DESTROY_BUFFER( buf, bufsize ) 
  52: #endif // #ifdef _DEBUG
  53: 
  54: 
  55: // DESTROY_TEXT_BUFFER( buf, bufcount ) の定義
  56: //
  57: // 文字列用バッファを破壊する
  58: // buf と bufcount が確認できる
  59: //
  60: #ifdef _DEBUG // デバッグ版
  61: #define DESTROY_TEXT_BUFFER( buf, bufcount ) (memset( (buf), 0xCA, (bufcount) * sizeof( *(buf) ) ))
  62: #else         // リリ−ス版
  63: #define DESTROY_TEXT_BUFFER( buf, bufcount ) 
  64: #endif // #ifdef _DEBUG
  65: 
  66: 
  67: // DBG_MSGBOX( wnd, title, message ) の定義
  68: //
  69: // デバッグ時にのみ表示されるメッセージボックス
  70: //
  71: #ifdef _DEBUG // デバッグ版
  72: #define DBG_MSGBOX( wnd, title, message ) ((void)MessageBox( wnd, message, title, MB_OK ))
  73: #else         // リリ−ス版
  74: #define DBG_MSGBOX( wnd, title, message )
  75: #endif // #ifdef _DEBUG
  76: 
  77: 
  78: // UNUSEPARAM(param) の定義
  79: // デバッグ : UNUSEPARAM( param ) => param
  80: // リリース : UNUSEPARAM( param ) =>
  81: #ifndef _DEBUG
  82: #define _unuse( param )             // リリ−ス版
  83: #define UNUSEPARAM( param )         // リリ−ス版
  84: #else // #ifndef _DEBUG
  85: #define _unuse( param )     param   // デバッグ版
  86: #define UNUSEPARAM( param ) param   // デバッグ版
  87: #endif // #ifndef _DEBUG
  88: 
  89: 
  90: //
  91: #ifdef _DEBUG // デバッグ版
  92: #define DEFINE_TESTPROC( p )    static void p(void)
  93: #else         // リリ−ス版
  94: #define DEFINE_TESTPROC( p )    
  95: #endif // #ifdef _DEBUG
  96: 
  97: //
  98: #ifdef _DEBUG // デバッグ版
  99: #define DECLARE_TESTPROC( p )   static void p(void);static void call_once_##p(const char*f,int l){static bool b=true;if(b){b=false;BACKGROUND_MESSAGE("%s(%d) : => %s \r\n",f,l,#p);p();BACKGROUND_MESSAGE("%s(%d) : <= %s \r\n",f,l,#p);}}
 100: #else         // リリ−ス版
 101: #define DECLARE_TESTPROC( p )   
 102: #endif // #ifdef _DEBUG
 103: 
 104: //
 105: #ifdef _DEBUG // デバッグ版
 106: #define CALLONCE_TESTPROC( p )  call_once_##p( __FILE__, __LINE__ )
 107: #else         // リリ−ス版
 108: #define CALLONCE_TESTPROC( p )          
 109: #endif // #ifdef _DEBUG
 110: 
 111: 
 112: // VALID_TEST(exp) の定義
 113: //
 114: // デバッグ用の関数 IsValid...() で(のみ)使う。
 115: // あまり良いコードではないので多用しないこと。
 116: //
 117: // 式 exp が 偽 になると関数の返値を false として関数を終了する。
 118: // 失敗した検査を DBG_TRACE へ出力する。
 119: //
 120: // 使用例:
 121: //
 122: // //*********************************************************
 123: // // IsValidFontHandle
 124: // // ハンドル hFont がフォントとして有効であれば 真 を返す
 125: // //*********************************************************
 126: // bool IsValidFontHandle( HFONT hFont )
 127: // {
 128: //      VALID_TEST( hFont );
 129: //      VALID_TEST( OBJ_FONT == GetObjectType( hFont ) );
 130: //      VALID_TEST( sizeof(LOGFONT) == GetObject( hFont, sizeof(LOGFONT), null ) );
 131: //
 132: //      return true;
 133: // }//IsValidFontHandle
 134: //
 135: #define VALID_TEST( exp ) {if ( !(exp) ){ BACKGROUND_MESSAGE( "%s(%d) : %s \r\n", __FILE__, __LINE__, #exp ); return false; }}
 136: 
 137: 
 138: //---------------------------------------------------------
 139: // header/dbgtrace.h
 140: //---------------------------------------------------------
 141: // ERROR_REPORT(...) の定義
 142: // リリース版でも削除されないことを除けば DBG_TRACE に同じ
 143: #define ERROR_REPORT  BACKGROUND_MESSAGE
 144: 
 145: // BACKGROUND_MESSAGE(...) の定義
 146: // リリース版でも削除されないことを除けば DBG_TRACE に同じ
 147: #define BACKGROUND_MESSAGE  (get_trace_proc())
 148: 
 149: // DBG_TRACE(...) の定義
 150: // デバッグ : DBG_TRACE( msg ) => tracef( msg )
 151: // リリース : DBG_TRACE( msg ) => true ? ((void)0) : (void)( msg )
 152: #ifndef _DEBUG
 153: #define DBG_TRACE   true ? ((void)0) : (void)  // リリ−ス版
 154: #else // #ifndef _DEBUG
 155: #define DBG_TRACE   (get_trace_proc())         // デバッグ版
 156: #endif // #ifndef _DEBUG 
 157: 
 158: // SET_TRACE( proc ) の定義
 159: // デバッグ : SET_TRACE( proc ) => set_trace_proc( proc )
 160: // リリース : SET_TRACE( proc ) => 
 161: #ifndef _DEBUG
 162: #define SET_TRACE( proc )                            // リリ−ス版
 163: #else // #ifndef _DEBUG
 164: #define SET_TRACE( proc )   set_trace_proc( (proc) ) // デバッグ版
 165: #endif // #ifndef _DEBUG
 166: 
 167: 
 168: //---------------------------------------------------------
 169: // header/dbgasert.h
 170: //---------------------------------------------------------
 171: // ASSERT( exp ) の定義
 172: #ifndef _DEBUG
 173: #define ASSERT( exp )                   // リリ−ス
 174: #else // #ifndef _DEBUG
 175: #define ASSERT( exp )  assert_jp( exp ) // デバッグ
 176: #endif // #ifndef _DEBUG
 177: 
 178: 
 179: // VERIFY( exp ) の定義
 180: #ifndef _DEBUG
 181: #define VERIFY( exp )  ((void)( exp ))         // リリ−ス
 182: #else // #ifndef _DEBUG
 183: #define VERIFY( exp )  assert_jp( 0 != (exp) ) // デバッグ
 184: #endif // #ifndef _DEBUG
 185: 
 186: 
 187: // UNREACHCODE( e ) の定義
 188: #ifndef _DEBUG
 189: #define UNREACHCODE( msg )                          // リリ−ス
 190: #else // #ifndef _DEBUG
 191: #define UNREACHCODE( msg )  (assert_jp( (msg, 0) )) // デバッグ
 192: #endif // #ifndef _DEBUG
 193: 
 194: 
 195: //---------------------------------------------------------
 196: // header/dbgalloc.h
 197: //---------------------------------------------------------
 198: // malloc( size ) の定義
 199: #ifdef _DEBUG
 200: #define malloc( size )    _my_malloc( (size), __FILE__, __LINE__ ) // デバッグ
 201: #endif // #ifdef _DEBUG
 202: 
 203: 
 204: // free( p ) の定義
 205: #ifdef _DEBUG
 206: #define free( p )     ((void)(_my_free( p, __FILE__, __LINE__ ), p = p )) // デバッグ
 207: #endif // #ifdef _DEBUG
 208: 
 209: 
 210: // realloc( p, size ) の定義
 211: #ifdef _DEBUG
 212: #define realloc( p, size )  _my_realloc( (p), (size), __FILE__, __LINE__ ) // デバッグ
 213: #endif // #ifdef _DEBUG
 214: 
 215: 
 216: // calloc( num, size ) の定義
 217: #ifdef _DEBUG
 218: #define calloc( num, size )  malloc( (num) * (size) ) // デバッグ
 219: #endif // #ifdef _DEBUG
 220: 
 221: 
 222: // strdup( str ) の定義
 223: #ifdef _DEBUG
 224: #define strdup( str )  StrAlloc( str ) // デバッグ
 225: #else
 226: #define strdup( str )  _strdup( str )  // リリース
 227: #endif // #ifdef _DEBUG
 228: 
 229: 
 230: // DBG_LOCK_ALLOCED_MEMORY( p, name ) の定義
 231: // DBG_UNLOCK_ALLOCED_MEMORY( p, name ) の定義
 232: //
 233: // 確保領域 p を名前 name でロックして開放できないようにします。
 234: //
 235: //
 236: #ifdef _DEBUG
 237: #define DBG_LOCK_ALLOCED_MEMORY( p, name )   _dbg_lock_ptr( (p), (name), __FILE__, __LINE__ )
 238: #define DBG_UNLOCK_ALLOCED_MEMORY( p, name ) _dbg_unlock_ptr( (p), (name), __FILE__, __LINE__ )
 239: #else
 240: #define DBG_LOCK_ALLOCED_MEMORY( p, name )
 241: #define DBG_UNLOCK_ALLOCED_MEMORY( p, name )
 242: #endif // #ifdef _DEBUG
 243: 
 244: 
 245: #endif // #ifndef TOOL_DEBUG_HEAD_INCLUDED
 246: 
 247: 
 248: //** end **

参照: argcargv.cpp, lnkctrl.cpp, picker.cpp, browsbox.cpp, dyndlg.cpp, curfile.cpp, icofile.cpp, toolmci.cpp, binary.cpp, crc16.cpp, crc32.cpp, md4.cpp, md5.cpp, pathargv.cpp, sha1.cpp, sha256.cpp, sha512.cpp, toolnext.cpp, toolold.cpp, snprintf.cpp, susie.cpp, toolbase.cpp, toolctrl.cpp, tooldbg.cpp, toolptrc.cpp, tools.h, toolsys.cpp, toolsysx.cpp, toolwind.cpp, workthrd.cpp


Google
ご意見・ご感想をお聞かせ下さい。匿名で送信できます。

 * 返信が必要な場合には postmaster@katsura-kotonoha.sakura.ne.jp へ直接メールしてください。

水無瀬の部屋 > sample > tools > header > tooldbg.h

このページは cpp2web が出力しました。
水無瀬 優 postmaster@katsura-kotonoha.sakura.ne.jp
http://katsura-kotonoha.sakura.ne.jp/prog/code/tools/header/tooldbg_h.shtml
>> Amazon.co.jp 『たまゆら童子』 へ
>> 楽天ブックス 『たまゆら童子』 へ